To display the value of a physical parameter, such as temperature, pressure, etc., it is necessary to employ a transducer that responds to that parameter by changing an electrically-detectable characteristic. Such characteristics include thermocouple voltages and temperature-sensitive resistance variations. Most sensors display significant non-linearities in their outputs, i.e., sensor output voltages deviate appreciably from a linear relationship with the input phenomenon being monitored. It is well known that thermocouples and thermistors exhibit nonlinear output increments in response to linear temperature increments.
A variety of classes of devices exist for correcting such non-linearities over wide ranges of input. Systems employing analog apparatus correct such non-linearities before digitizing through the use of resistor-diode-amplifier circuits. These systems provide adequate accuracy for a limited number of sensor types over restricted input ranges. Analog linearizing systems store the required correction information in the values of resistors which set the break points between various segments of the response curve and the slope/offset peculiar to each segment of the response curve. Analog linearizers typically have eight or fewer segments, and are capable of linearizing most thermocouples, within a few degrees, over commonly-experienced input ranges.
Since the development of inexpensive microcontrollers and memory chips, digital correction techniques have supplanted many analog linearizing systems. Sophisticated algorithms exist for linearizing sensor outputs; however, in general, they require substantial amounts of memory and computing capability. Most such systems are both large and expensive and are not feasible for many commercial sensor applications. For instance, panelmeters are today manufactured with a microcontroller integral to the meter. The meter receives a sensor input, after analog conditioning, and provides an output reading of a linearized value. Microcontrollers useful with panel meters have limited amounts of available storage (ROM and RAM) for sensor response curve data points. Furthermore, while such microcontrollers can rapidly perform addition and subtraction calculations, they are relatively, slow when high-precision multiplication or division is attempted.
Microcontrollers used for sensor linearization employ various computational methods. Some sensors (e.g., resistance-temperature detectors) have outputs that can be closely approximated by a few terms of a power series; however high-precision representation of the values in a typical transducer power series can require computations out to a dozen decimal digits of resolution for up to a dozen powers of the phenomenon being sensed (e.g., temperature). With careful programming, large computers can preserve this resolution and can accurately invert such a power series. Microcontrollers suitable for panel meters however, do not posses the required ROM and RAM and cannot usually afford the long computation times for such complex mathematics.
An alternate approach to the power series expansion computation is to store "key" data-point pairs at selected points along a response curve and to perform interpolations when required. When the response curve is broken into a large number of such segments (more segments enable nonlinear areas of the responsive curve to be more accurately reproduced), the storage requirements for the microcontroller increase substantially. One way to reduce data storage requirements is to use regular spacing of the input data points that delimit the boundaries of each segment, so that one of the two variables can be reconstructed by counting rather than by reading a stored value. Thus, a range of possible input voltages can be divided into a number of equal segments: the incremental count output from the analog-to-digital converter is chosen to be the same between succeeding data points on the response curve.
In order to further reduce the amount of storage required in panelmeter microcontrollers, the prior art has employed a finite-difference method. That method will be described in conjunction with curve 10 shown in FIG. 1, which is an exemplary response curve of a temperature sensor. A plurality of data points S.sub.0 -S.sub.5 are positioned along response curve 10 and each represents the digital value of the temperature at that point. The finite-difference technique employs a plurality of "derivatives" of curve 10 which may be linearly approximated by arithmetic differences. The slope S' between any two data points can be defined as the ratio of the temperature difference to the voltage difference. For instance, the slopes between data points S.sub.0 and S.sub.1, and S.sub.1 and S.sub.2
The finite difference value of the curvature (second derivative) can then be defined as the difference between two succeeding slope values. Thus, the curvature or second finite-difference between data points S.sub.0 and S.sub.2, and S.sub.1 and S.sub.3 are expressed as follows: EQU S".sub.2 =S.sub.2 '-S.sub.1 '
(second finite-difference of the second segment); and EQU S".sub.3 =S.sub.3 '-S.sub.2 '
(second finite-difference of the third segment)
The finite difference value of the third derivative or rate-of-change of curvature can then defined as the difference between two succeeding curvature values, thus: EQU S'".sub.3 =S".sub.3 -S".sub.2
(third finite difference of the third segment).
From a review of the finite-difference expressions, it can be seen, given one value, that other values can be derived by addition/subtraction actions. The use of finite-differences enables a microcontroller to replace stored values of temperature, slope and curvature with a third-order differences for each curve segment. Furthermore, while the values of temperature, first and second order difference may be numerically sizable, third-order differences (analogous to third derivatives) are generally small and usually markedly diminish as a sensor's output increases. This can be understood by realizing that as temperature increases, thermodynamic smoothing also increases, lowering the rate of change of curvature.
Using the finite-difference system, the value of temperature for any input voltage can be calculated from a table of third-finite-differences plus table-starting values of temperature, slope, and curvature (zero, first and second order differences), By repeated-addition and accumulation of values, multiplication actions are avoided and the use of less complex, faster microcontrollers is enabled.
Table values to be stored in a microcontroller for third-finite-differences can be precalculated and based on equal segment values along the response curve. This enables approximately 20 bytes per thermocouple type to be stored in the table and yet enables the accurate calculation of hundreds of individual data points over much of the temperature range of interest. In addition, however, the market requires that panel meters be adapted to receive inputs from many types of sensors, each one having a different response curve. Notwithstanding the data compaction achieved through the use of finite-differences, current cost-effective microcontrollers are unable to cope with the total storage required for excellent accuracy (e.g., all points to 0.l.degree. C.) for full temperature ranges (e,g,, 1000.degree. C.) for all sensor types (e.g., 12 thermocouples plus temperature-sensitive resistors).